﻿#ifndef COMMONHELPER_H
#define COMMONHELPER_H
#include <QString>
#include <QDateTime>
#include <QUuid>
#include <QVariant>
#include <QVariantMap>
#include <QList>
#include <QSqlRecord>
#include <DbHelper.h>
#include <StaticProperties.h>
#include <QRegularExpression>
#include <QEventLoop>
#include <QTimer>

class CommonHelper: public QObject
{
    Q_OBJECT
private:
    CommonHelper();

public:
    static CommonHelper& Common();

public:
    QString GetGuid();
    QString GetDateTimeStr();
    QString GetTimeStr();
    QByteArray GetSendData(QString);
    QString SixteenToTen(QString);
    QString GetCrcCheck(QString);
    QString TenToSixteen(int, int);
    QString SixteenToTwo(QString);
    QString hexToBinFormatted(QString);
    QString binToDecFormatted(QString);

    QByteArray hexStringToByteArray(QString);
    QString binaryToHex(const QString &data);
    QString getItemCode(QString,QString);
    QString getItemName(QString,QString);

    QString minToSecond(QString,QString);
    QString secondToMin(QString,QString);

    double  minToSecond(double, double);
    double  secondToMin(double, double);
    QStringList getErrorInfo(QString);
    bool isCurrentModuleError(QString errorCode);
    int  getErrorType(QString errorCode);           // [20251119-JNN]判断故障类型是并发还是流程，如果故障是模块4的，并且实验正在并发状态，就返回1，其它情况返回0（大概）

    int getCurrentExpTypeCode(QString);
    QString getCurrentExpTypeName(int);
    void nonBlockingDelay(int milliseconds);

    void setDefaultDetectionParameters();
    void staticUseTime(int,QString);

    bool ShieldingDetection(int);

    QString getSendDataLength(QString);
};

#endif // COMMONHELPER_H
